package com.hsylient.javase.draftpaper;

import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

@Slf4j
public class ReTest {


    @Test
    public void testRe() {

//        String str1 = "^";
//        String str2 = "abc@123";
//
//        String pattern = "[a-zA-Z0-9]+"; // 正则表达式，只匹配字母和数字
//
//        // 检查整个字符串是否只由[a-zA-Z0-9]组成
//        boolean isValidStr1 = ReUtil.isMatch("^" + pattern + "$", str1); // 加上^和$，表示完整匹配
//        boolean isValidStr2 = ReUtil.isMatch("^" + pattern + "$", str2);
//
//        System.out.println("str1是否符合要求: " + isValidStr1); // true
//        System.out.println("str2是否符合要求: " + isValidStr2); // false
    }


    public static boolean isValid(String str) {
        if (StrUtil.isBlank(str)) return false; // 空格和null
        return !str.matches("^(\\s|\\t|\\r|\\n).*|(.*(\\s|\\t|\\r|\\n))$");
    }

    public static void main(String[] args) {
        System.out.println(isValid("\n\n\n\n\n\n\n\n"));            // false
        System.out.println(isValid("\t\t\t\t\t"));                  // false
        System.out.println(isValid("    恭喜发财      "));           // false (前后有空格)
        System.out.println(isValid("\t恭喜发财"));                   // false (前面有制表符)
        System.out.println(isValid("恭喜发财\t"));                   // false (后面有制表符)
        System.out.println(isValid("恭喜发财\n"));                   // false (后面有换行符)
        System.out.println(isValid("\n恭喜发财"));                   // false (前面有换行符)
        System.out.println(isValid("恭喜发财aaaa"));                 // true (没有前后空格或空白字符)
        System.out.println(isValid(""));                            // false
        System.out.println(isValid(null));                          // false
        System.out.println(isValid("good good")); // false？
    }
}
